const express = require('express')
// 创建路由表(空表)
const router = express.Router()
// 引入加密模块(用来加密用户密码)
const md5 = require('md5')
// 引入数据库的数据模型
const adminModel = require('../db/modules/adminModule')
// 引入验证token的自定义模块
const VerToken = require('../utils/verifyToken')

// ✨ 添加管理员接口 http://localhost:8080/addAdmin
router.post('/addAdmin', VerToken, async (req, res) => {
    // 1. 解构赋值，获取用户名和密码
    let { username, password } = req.fields
    // 2. 加密
    password = md5(password)
    // 3.将数据加入数据库
    await adminModel.create({ username, password })
    // 4.重新返回数据库最新的数据
    const admins = await adminModel.find()
    // 5.将结果反馈给用户
    res.send({ code: 1, msg: '添加成功', admins })
})

// ✨ 查询管理员接口 http://localhost:8080/findAdmin
router.get('/findAdmin', async (req, res) => {
    try {
        let result = await adminModel.find()
        res.send({ "code": 1, "msg": '获取成功', "data": result })
    } catch (error) {
        res.send({ "code": 0, "msg": "获取失败", error })
    }
})

// ✨ 删除一条管理员接口 http://localhost:8080/delOneAdmin
router.get('/delOneAdmin', VerToken, async (req, res) => {
    const { adminId } = req.query
    await adminModel.deleteOne({ _id: adminId })
    const admins = await adminModel.find()
    res.send({ code: 1, msg: '删除成功', admins })
})

// ✨ 修改管理员密码接口 http://localhost:8080/updataAdmin
router.post('/updataAdmin' , VerToken , async (req,res)=>{
    const { adminId , password } = req.fields
    // console.log(password) 111111
    const newPassword = md5(password)
    await adminModel.updateOne({_id:adminId},{password:newPassword})
    const admins = await adminModel.find() 
    res.send({code:1,msg:'修改成功',admins})
})

module.exports = router